package com.xAdmin.domain.enums;

/**
 * @author: xiaYZ  2025/3/8
 * @version: 1.0
 */
import lombok.Getter;

public enum LogModuleEnum {

    // 核心模块
    USER("USER", "用户模块"),
    DEPARTMENT("DEPT", "部门模块"),
    MENU("MENU", "菜单模块"),
    ROLE("ROLE", "角色模块"),
    PERMISSION("PERMISSION", "权限模块"),
    DICT("DICT", "数据字典模块"),

    SYSTEM("SYSTEM", "系统模块"),
    OTHER("OTHER", "其他模块");

    // 字段定义
    @Getter
    private final String moduleCode; // 模块唯一标识（英文缩写）
    @Getter
    private final String description; // 模块中文描述

    // 构造方法
    LogModuleEnum(String moduleCode, String description) {
        this.moduleCode = moduleCode;
        this.description = description;
    }

    /**
     * 根据模块标识获取枚举项
     * @param moduleCode 模块标识（如 "USER"）
     * @return 对应的枚举项，若不存在返回 null
     */
    public static LogModuleEnum fromCode(String moduleCode) {
        for (LogModuleEnum module : values()) {
            if (module.getModuleCode().equalsIgnoreCase(moduleCode)) {
                return module;
            }
        }
        return null;
    }
}

